Formal Verification of Projection-Based Software Systems
نویسندگان
چکیده
Recent implementation languages such as AspectJ and HyperJ allow systems to be decomposed into declaratively complete units. These units are projections of the system, which are partial implementations of the entire system where each program element such as a data structure or procedure may be partially defined in more than one projection. In contrast, traditional languages rely on units that are partitions, which are complete implementations of part of the system: every program element is defined in only one part. Projection-based approaches offer low coupling between units leading to programs that may be easier to maintain and extend. These implementation languages for projection-based systems offer facilities for composing projections to form a complete software package. This composition usually yields a number of complex interactions between the projections. Some of these interactions may manifest themselves as inconsistencies such as undesired interference among projections. Formal verification is an effective mechanism for detecting inconsistencies. However, existing formal specification languages do not provide the means to express the interactions between projections in a clear and concise fashion. Existing projection-based implementation languages perform composition using a similar set of basic constructs. The goal of this work is to find suitable abstractions for these common constructs, which will lead to a formal representation of projection composition and an approach to formal verification of projection-based systems. In order to accomplish this goal, a formal model of the composition mechanisms used in projection-based languages was developed. This model serves as the semantic basis for C3, a language for formally specifying the composition of projections. An analyst who decomposes a formal specification into projections can compose these projections using C3. A C3 description is easily translated to an implementation in a projection-based language. The original projections and the composed specifications can be verified for desired properties. The C3 language and verification approach are demonstrated through two case studies, one using the Alloy language, and another using the Finite State Process (FSP) language. The contributions of this thesis include: a formal model of the mechanisms for composing projections to produce a complete program; C3, a language for specifying the composition of projections; and approaches to verifying properties of compositions specified using C3, and properties of projections written in different formal specification languages. These contributions increase the body of knowledge regarding the underlying principles of projection-based languages.
منابع مشابه
Reachability checking in complex and concurrent software systems using intelligent search methods
Software system verification is an efficient technique for ensuring the correctness of a software product, especially in safety-critical systems in which a small bug may have disastrous consequences. The goal of software verification is to ensure that the product fulfills the requirements. Studies show that the cost of finding and fixing errors in design time is less than finding and fixing the...
متن کاملFormal Method in Service Composition in Heath Care Systems
One of the areas with greatest needs having available information at the right moment and with high accuracy is healthcare. Right information at right time saves lives. Healthcare is a vital domain which needs high processing power for high amounts of data. Due to the critical and the special characteristics of these systems, formal methods are used for specification, description and verificati...
متن کاملFormal Verification of Component-Based Software Systems
In this work we present a methodology for formal modeling and verification of component based software systems. The methodology is based on software architecture, components, and reuse of Petri Nets models. With this process, we are contributing for the visual composition, verification, and formal validation of software. We also show an example of the application of this methodology into two di...
متن کاملA short introduction to two approaches in formal verification of security protocols: model checking and theorem proving
In this paper, we shortly review two formal approaches in verification of security protocols; model checking and theorem proving. Model checking is based on studying the behavior of protocols via generating all different behaviors of a protocol and checking whether the desired goals are satisfied in all instances or not. We investigate Scyther operational semantics as n example of this...
متن کاملModeling and Evaluation of Stochastic Discrete-Event Systems with RayLang Formalism
In recent years, formal methods have been used as an important tool for performance evaluation and verification of a wide range of systems. In the view points of engineers and practitioners, however, there are still some major difficulties in using formal methods. In this paper, we introduce a new formal modeling language to fill the gaps between object-oriented programming languages (OOPLs) us...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2003